package com.meituan.sdk.model.ddzhkh.shangpin.productEditMutex;

import com.meituan.sdk.annotations.ApiMeta;
import java.util.List;
import com.google.gson.reflect.TypeToken;
import javax.validation.constraints.NotBlank;
import java.lang.reflect.Type;
import com.meituan.sdk.internal.utils.JsonUtil;
import com.google.gson.annotations.SerializedName;
import javax.validation.constraints.NotNull;
import com.meituan.sdk.MeituanResponse;
import com.meituan.sdk.MeituanRequest;
import javax.validation.constraints.NotEmpty;

/**
* 新增搭配项目互斥关系
* This file was automatically generated.
*/
@ApiMeta(
    path = "/ddzhkh/shangpin/edit/mutex",
    businessId = 59,
    apiVersion = "10013",
    apiName = "product_edit_mutex",
    needAuth = true
)
public class ProductEditMutexRequest implements MeituanRequest<ProductEditMutexResponse> {
    /**
    * <p data-diff-id="ct-diff-id-a5138fc7-d58b-4b95-b0d4-19a125653e23"><br><span style="color: ">1在线 2下线 新增传1、下线传2、上线传1</span></p>
    */
    @NotNull(message = "status不能为空")
    @SerializedName("status")
    private Integer status;
    /**
    * <p data-diff-id="ct-diff-id-246ccf96-d128-4048-9c06-5ec538f7f807"><span style="color: ">互斥组名称</span></p>
    */
    @NotBlank(message = "mutexName不能为空")
    @SerializedName("mutexName")
    private String mutexName;
    /**
    * <p data-diff-id="ct-diff-id-7b5a6b79-fa55-460b-b671-e11b702f6846"><span style="color: ">互斥组id（编辑时必传）</span></p>
    */
    @SerializedName("mutexId")
    private Long mutexId;
    /**
    * <p data-diff-id="ct-diff-id-4556663b-b084-4cfa-a29a-5015a4cccd85"><span style="color: ">搭配项目信息，传一个productId即可</span></p>
    */
    @NotEmpty(message = "productList不能为空")
    @SerializedName("productList")
    private List<Product> productList;

    public Integer getStatus() {
        return status;
    }
    public void setStatus(Integer status) {
        this.status = status;
    }
    public String getMutexName() {
        return mutexName;
    }
    public void setMutexName(String mutexName) {
        this.mutexName = mutexName;
    }
    public Long getMutexId() {
        return mutexId;
    }
    public void setMutexId(Long mutexId) {
        this.mutexId = mutexId;
    }
    public List<Product> getProductList() {
        return productList;
    }
    public void setProductList(List<Product> productList) {
        this.productList = productList;
    }


    @Override
    public MeituanResponse<ProductEditMutexResponse> deserializeResponse(String response) {
        Type type = new TypeToken<MeituanResponse<ProductEditMutexResponse>>(){}.getType();
        return JsonUtil.fromJson(response, type);
    }
    @Override
    public String serializeToJson() {
        return JsonUtil.toJson(this);
    }


    @Override
    public String toString() {
        return "ProductEditMutexRequest{" + "status=" + status + "," + "mutexName=" + mutexName + "," + "mutexId=" + mutexId + "," + "productList=" + productList + "}";
    }
}
